#!/bin/sh
#
# This file is part of OpenMediaVault.
#
# @license   http://www.gnu.org/licenses/gpl.html GPL Version 3
# @author    Volker Theile <volker.theile@openmediavault.org>
# @copyright Copyright (c) 2009-2021 Volker Theile
#
# OpenMediaVault is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# any later version.
#
# OpenMediaVault is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenMediaVault. If not, see <http://www.gnu.org/licenses/>.

set -e

. /etc/default/openmediavault
. /usr/share/openmediavault/scripts/helper-functions

OMV_NUT_UDEV_RULE_CONFIG=${OMV_NUT_UDEV_RULE_CONFIG:-"/etc/udev/rules.d/99-openmediavault-nut-serialups.rules"}

remove_action() {
	# Force the creation of the monit service configuration files. This
	# way we can simply purge this service configuration file. Finally
	# reload the monit configuration.
	rm -rf "/etc/monit/conf.d/openmediavault-nut.conf"
	omv-salt deploy run --no-color monit
	# Create new collectd configuration after nut plugin has been removed
	# and restart the service if necessary.
	rm -rf "/etc/collectd/collectd.conf.d/nut.conf"
	omv-salt deploy run --no-color collectd
	# Remove udev-rule.
	rm -f "${OMV_NUT_UDEV_RULE_CONFIG}"
	udevadm control --reload-rules
	# Reload rsyslog configuration because the nut configuration
	# file has been removed by the package management.
	deb-systemd-invoke force-reload rsyslog || :
	# Activate trigger to rebuild workbench configuration files.
	dpkg-trigger update-workbench
}

case "$1" in
	purge)
		remove_action
		# Remove the configuration data. Sadly we can not use 'omv-confdbadm'
		# here because the database model has been removed already in a
		# previous stage, see https://wiki.debian.org/MaintainerScripts.
		# Because of that we need to use the helper tools to remove the
		# configuration.
		echo "Cleaning up configuration database ..."
		omv_config_delete "/config/services/nut"
	;;

	remove)
		remove_action
	;;

	upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
	;;

	*)
		echo "postrm called with unknown argument '$1'" >&2
		exit 1
	;;
esac

exit 0
